/**
 * 工具
 *
 */
import { findNodeHandle, UIManager } from 'react-native';


/**
 * 获取坐标
 * x，y表示组件的相对位置，width，height表示组件的宽度和高度，pageX，pageY表示组件相对于屏幕的绝对位置。
 *
 * @param ref 组件的实例
 * @returns {Promise<{x, y, width, height, pageX, pageY}>}
 */
const getLayout = (ref) => {
  const handle = findNodeHandle(ref);

  return new Promise(resolve => {
    UIManager.measure(handle, (x, y, width, height, pageX, pageY) => {
      resolve({x, y, width, height, pageX, pageY});
    });
  });
};

global.getLayout = getLayout;